Object-Oriented Nets with Algebraic Specifications: The CO-OPN/2 Formalism
نویسندگان
چکیده
Class C-User; Interface Use Coord, Size, Angle, Privilege, Ownership; Type c-user; Methods join _ : privilege; leave; select _ : coord; unselect; go-down; go-back; delete; move _ : coord; resize _ : size; rotate _ : angle; own-for _ : ownership; Body Use Unique, C-Viewport; Places idle _ , active _ : unique; cur-vp _ : c-viewport; Initial idle @; Axioms join pr with v.(self join pr) :: idle @ -> active @,cur-vp v; leave with v.leave :: active @,cur-vp v -> idle @; select p with v.select p :: active @,cur-vp v -> active @,cur-vp v; move p with v.move p :: active @,cur-vp v -> active @,cur-vp v; own-for os with v.own-for os:: active @,cur-vp v -> active @,cur-vp v; where p : coord; v : c-viewport; pr : privilege; os : ownership; ;; ... and more axioms ... End C-User; Spec. 12: The Cooperative Users. rotate methods are used to modify aspects of selected components. The own-for method represents the user's will to own a component for a given ownership. The instance variables (Places eld) are involved in the behavioral axioms which describe the properties of the methods. For instance, the behavioral axiom join pr with v.(self join pr) :: idle @ -> active @, cur-vp v indicates that the join method is asking to be synchronized with the join method for the privilege pr of an available existing viewport v. The user has to be idle and will become active. Moreover, the free variable v will be uni ed with an available existing viewport and memorized by the current viewport attribute (cur-vp v). The self-reference self informs the viewport of the identity of the user who wants to be connected to it. The viewport will store this object identi er in order to know what connection has been established. The role of the method select is the transmission of the user's will to select an existing component at a given position p to the current viewport v. The same remark holds true for the other methods. Figure 20 provides a partial graphic view of the C-User class. Note that for the sake of clarity not all the methods have been represented. In order to obtain an e ective class of users which may be involved in a hierarchical Petri net editor we make use of inheritance. In Speci cation 13 one may see the inheriting class PN-C-User which inherits from the class C-User as declared under the Inherit eld. In this
منابع مشابه
A Formal Specification Framework for Object-Oriented Distributed Systems
ÐIn this paper, we present the Concurrent Object-Oriented Petri Nets (CO-OPN/2) formalism devised to support the specification of large distributed systems. Our approach is based on two underlying formalisms: order-sorted algebra and algebraic Petri nets. With respect to the lack of structuring capabilities of Petri nets, CO-OPN/2 has adopted the object-oriented paradigm. In this hybrid approac...
متن کاملExploiting Various Levels of Semantics in CO-OPN for the SANDS Environment Tools
This paper describes the techniques and tools developed to support the construction of CO-OPN specifications (Concurrent Object Oriented Petri Nets) [7] and the kind of semantics that are needed for each part of the environment. CO-OPN is a specification language which permits an abstract description of aspects of concurrent operations and data-structures of computer programs. The concurrent an...
متن کاملCo-opn/2: a Concurrent Object-oriented Formalism
In this article we present the concurrent object-oriented speciication language CO-OPN/2 which extends the CO-OPN (Concurrent Object Oriented Petri Nets) formalism, destined to support the speciication of large distributed systems. The CO-OPN/2 approach proposes a speciication language, based on the object-oriented paradigm, which includes a ne description of true concurrent behavior. This hybr...
متن کاملUsing the COOPN / 2 Formal Method for Groupware Systems Engineering #
A BSTRACT . COOPN/2 (Concurrent Object Oriented Petri Nets) is an object-oriented specification formalism based on Petri Nets and algebraic specifications. It is fully adapted to the specification of complex concurrent systems because it inherits the advantages of algebraic specifications for the specification of abstract data types, from Petri nets to describe partially ordered events and from...
متن کاملFrom Formal Specifications to Ready-to-Use Software Components: The Concurrent Object Oriented Petri Net Approach
CO-OPN (Concurrent Object Oriented Petri Net) is a formal specification language for modelling distributed systems; it is based on coordinated algebraic Petri nets. In this paper we describe a method for generating an executable prototype from a CO-OPN specification. We focus our discussion on the generation of executable code for COOPN classes. CO-OPN classes are defined using Petri Nets. The ...
متن کاملTest Selection for Specification-Based Unit Testing of Object-Oriented Software based on Formal Specifications
ion in CO-OPN/2 is provided by two kinds of sorts: algebraic sorts and class types. Not all entities in a CO-OPN/2 system are objects, some of them are merely algebraic values, without identity. Thus CO-OPN/2 stands in the class of hybrid object-oriented specification languages. Sorts provide services, called functions for algebraic sorts, and methods for objects. Methods are special transition...
متن کامل